﻿using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GsOrganization.Common.Helper
{
    public class LogHelper
    {
        private static ILogger _logger;
        public static ILogger Logger { get => _logger; }

        static LogHelper()
        {
            _logger = new LoggerConfiguration().WriteTo
                    .File(Path.Combine($"{AppContext.BaseDirectory}/logs", @"log-.log"), outputTemplate: "{Timestamp:HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true)
                    .CreateLogger();
        }

        public static ILogger GetLogger()
        {
            return _logger;
        }

        public static void Information(string msg)
        {
            _logger.Information(msg);
        }

        public static void Warning(string msg)
        {
            _logger.Warning(msg);
        }

        public static void Error(string msg)
        {
            _logger.Error(msg);
        }

        public static void Debug(string msg)
        {
            _logger.Debug(msg);
        }

        public static void Error(Exception e, string msg)
        {
            _logger.Error(e, msg);
        }

        public static void Fatal(string msg)
        {
            _logger.Fatal(msg);
        }
    }
}
